#!/bin/bash
# ============================================================
# 脚本名称：comfyui_backup_models.sh
# 功能说明：打包 ComfyUI 的 models 目录为 tar.gz 文件，便于离线迁移或备份
#
# 使用示例：
#   bash comfyui_backup_models.sh /workspace/comfyui/ComfyUI ./backup_dir comfyui_models.tar.gz
#
# 参数说明：
#   $1 - ComfyUI 根目录路径（可选，默认：/workspace/comfyui/ComfyUI）
#   $2 - 中间备份目录（可选，默认：./comfyui_models_backup）
#   $3 - 输出 tar.gz 文件名（可选，默认：comfyui_models_backup.tar.gz）
# ============================================================

COMFYUI_ROOT=${1:-/workspace/comfyui/ComfyUI}
BACKUP_DIR=${2:-./comfyui_models_backup}
ARCHIVE_NAME=${3:-comfyui_models_backup.tar.gz}

echo "🗂️ 开始打包 ComfyUI 模型目录..."
echo "📁 ComfyUI 根目录: $COMFYUI_ROOT"
echo "📦 备份目录路径:   $BACKUP_DIR"
echo "🗜️  归档文件名:    $ARCHIVE_NAME"

if [ ! -d "$COMFYUI_ROOT/models" ]; then
    echo "❌ 错误：路径 $COMFYUI_ROOT/models 不存在"
    exit 1
fi

mkdir -p "$BACKUP_DIR"
cp -r "$COMFYUI_ROOT/models" "$BACKUP_DIR/"

tar -czvf "$ARCHIVE_NAME" -C "$BACKUP_DIR" models
sleep 1 && sync && sleep 1 && sync && rm -rf "$BACKUP_DIR/models"

echo "✅ 打包完成，文件保存为：$ARCHIVE_NAME"
